数据结构与算法--查找与排序

本文详细介绍了线性查找、二分查找以及冒泡排序、插入排序、选择排序、快速排序和归并排序这五种经典的排序算法,包括各自的工作原理和操作步骤,帮助理解数据结构与算法中的查找和排序核心概念。
摘要由CSDN通过智能技术生成
参考:https://blog.csdn.net/opera95/article/details/51217021

线性查找
二分查找
冒泡排序
插入排序
选择排序
快速排序
归并排序

1 线性查找

线性查找,又称为顺序查找,是指在所有给定的值中从一端开始逐个检查每个元素是否为要查找的对象,直到找到为止的过程。

##逐个查找要查找的对象

#include <stdio.h>
typedef char DataType;
int mySearch(DataType *ts, int n, const DataType d) {
    for (int i = 0; i < n; i++)
        if (ts[i] == d)
            return i;
    return -1;
}
int main()
{
    char cs[6] = {'*','A','B','C','D','E'};
    printf("%d\n", mySearch(cs, 6, '*'));
    printf("%d\n", mySearch(cs, 6, 'A'));
    printf("%d\n", mySearch(cs, 6, 'D'));
    printf("%d\n", mySearch(cs, 6, 'C'));
}

2 二分查找

二分查找算法,又称折半搜索、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。

二分查找算法的查找过程是这样的。首先,要求待查找的数组是排好序的数组,我们假设数组是升序的,即从小到大排序。然后,将要查找的元素与数组的中间元素相对比,如果相等,则表示要查找的元素被找到了,并停止查找;如果要查找的元素小于数组的中间元素,则从数组中间元素开始到数组最后的元素都大于要查找的元素,也就不需要在其中查找了,只需要在数组中间元素到数组第一个元素之间查找;如果要查找的元素大于数组的中间元素,则从数组中间元素到数组第一个元素都小于要查找的元素,也就不需要在其中查找了,只需要在数组中间元素到数组最后的元素之间查找。二分查找算法在查找的过程中只需对比一次,就可以使待查找的对象个数减少一半。查找速度非常快,所以二分查找算法得到了广泛的应用。

步骤一:定义上下界

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值